package code.sort;

public class SelectBubbleInsert {

    //选择排序
    public void selectSort(int[] arry){
        for (int i = 0; i < arry.length -1; i++) {
            //0---n-1，1——n-1
            int temp = i;
            for (int j = i+1; j < arry.length; j++) {
                if(arry[temp] > arry[j]){
                    temp = j;
                }
            }
            swap(arry,i,temp);
        }
    }

    //冒泡排序
    //0---n-1
    //0--n-2
    public void bubbleSort(int[] arry){
        for (int i = arry.length -1; i >=0 ; i--) {
            for (int j = 0; j < i; j++) {
                if(arry[j]>arry[j+1]){
                    swap(arry,j,j+1);
                }
            }
        }
    }

    //插入排序
    //0-0  0-1，0-2
    //0-n 有序

    //保证i 前面的有序
    public void insertSort(int[] arry){
        for (int i = 1; i < arry.length -1; i++) {
            for (int j = i-1; j >= 0 && arry[j] < arry[j+1]; j--) {
                swap(arry,j,j+1);
            }
        }
    }





    public void swap(int[] arry,int i,int j){
        int temp = arry[i];
        arry[i] = arry[j];
        arry[j] = temp;
    }
}
